﻿/*
 * TagType
 * 
 * initial implementation : 20.10.2008
 *
 * Copyright (c) Adam Sida, asida@centrum.cz.
 * All rights reserved.
 * 
 * for license see Petra.Gis.License.txt
 */

namespace Petra.Gis.ImagingServices.Tiff
{

  public enum TagType
  {
    UNKNOWN = 0, //for unknown tags

    SUBFILETYPE = 254,	//subfile data descriptor
    OSUBFILETYPE = 255,	//+kind of data in subfile
    IMAGEWIDTH = 256,	//image width in pixels
    IMAGELENGTH = 257,	//image height in pixels
    BITSPERSAMPLE = 258,	//bits per channel (sample)
    COMPRESSION = 259,	//data compression technique
    PHOTOMETRIC = 262,	//photometric interpretation
    THRESHHOLDING = 263,	//+thresholding used on data
    CELLWIDTH = 264,	//+dithering matrix width
    CELLLENGTH = 265,	//+dithering matrix height
    FILLORDER = 266,	//data order within a byte
    DOCUMENTNAME = 269,	//name of doc. image is from
    IMAGEDESCRIPTION = 270,	//info about image
    MAKE = 271,	//scanner manufacturer name
    MODEL = 272,	//scanner model name/number
    STRIPOFFSETS = 273,	//offsets to data strips
    ORIENTATION = 274,	//+image orientation
    SAMPLESPERPIXEL = 277,	//samples per pixel
    ROWSPERSTRIP = 278,	//rows per strip of data
    STRIPBYTECOUNTS = 279,	//bytes counts for strips
    MINSAMPLEVALUE = 280,	//+minimum sample value
    MAXSAMPLEVALUE = 281,	//+maximum sample value
    XRESOLUTION = 282,	//pixels/resolution in x
    YRESOLUTION = 283,	//pixels/resolution in y
    PLANARCONFIG = 284,	//storage organization
    PAGENAME = 285,	//page name image is from
    XPOSITION = 286,	//x page offset of image lhs
    YPOSITION = 287,	//y page offset of image lhs
    FREEOFFSETS = 288,	//+byte offset to free block
    FREEBYTECOUNTS = 289,	//+sizes of free blocks
    GRAYRESPONSEUNIT = 290,	//$gray scale curve accuracy
    GRAYRESPONSECURVE = 291,	//$gray scale response curve
    GROUP3OPTIONS = 292,	//32 flag bits
    T4OPTIONS = 292,	//TIFF 6.0 proper name alias
    GROUP4OPTIONS = 293,	//32 flag bits
    T6OPTIONS = 293,     //TIFF 6.0 proper name
    RESOLUTIONUNIT = 296,	//units of resolutions
    PAGENUMBER = 297,	//page numbers of multi-page
    COLORRESPONSEUNIT = 300,	//$color curve accuracy
    TRANSFERFUNCTION = 301,	//!colorimetry info
    SOFTWARE = 305,	//name & release
    DATETIME = 306,	//creation date and time
    ARTIST = 315,	//creator of image
    HOSTCOMPUTER = 316,	//machine where created
    PREDICTOR = 317,	//prediction scheme w/ LZW
    WHITEPOINT = 318,	//image white point
    PRIMARYCHROMATICITIES = 319,	//!primary chromaticities
    COLORMAP = 320,	//RGB map for pallette image
    HALFTONEHINTS = 321,	//!highlight+shadow info
    TILEWIDTH = 322,	//!tile width in pixels
    TILELENGTH = 323,	//!tile height in pixels
    TILEOFFSETS = 324,	//!offsets to data tiles
    TILEBYTECOUNTS = 325,	//!byte counts for tiles
    BADFAXLINES = 326,	//lines w/ wrong pixel count
    CLEANFAXDATA = 327,	//regenerated line info
    MAXCONSECBADFAXLINES = 328,	//max consecutive bad lines
    SUBIFD = 330,	//subimage descriptors
    INKSET = 332,	//!inks in separated image
    INKNAMES = 333,	//!ascii names of inks
    NUMBEROFINKS = 334,	//!number of inks
    DOTRANGE = 336,	//!0% and 100% dot codes
    TARGETPRINTER = 337,	//!separation target
    EXTRASAMPLES = 338,	//!info about extra samples
    SAMPLEFORMAT = 339,	//!data sample format
    SMINSAMPLEVALUE = 340,	//!variable MinSampleValue
    SMAXSAMPLEVALUE = 341,	//!variable MaxSampleValue
    CLIPPATH = 343,	//%ClipPath [Adobe TIFF technote 2]
    XCLIPPATHUNITS = 344,	//%XClipPathUnits [Adobe TIFF technote 2]
    YCLIPPATHUNITS = 345,	//%YClipPathUnits [Adobe TIFF technote 2]
    INDEXED = 346,	//%Indexed [Adobe TIFF technote 3]
    JPEGTABLES = 347,	//%JPEG table stream
    OPIPROXY = 351,	//%OPI Proxy [Adobe TIFF technote]

    /*
     * Tags 512-521 are obsoleted by Technical Note #2 which specifies a
     * revised JPEG-in-TIFF scheme.
     */
    JPEGPROC = 512,	/* !JPEG processing algorithm */
    JPEGIFOFFSET = 513,	/* !pointer to SOI marker */
    JPEGIFBYTECOUNT = 514,	/* !JFIF stream length */
    JPEGRESTARTINTERVAL = 515,	/* !restart interval length */
    JPEGLOSSLESSPREDICTS = 517,	/* !lossless proc predictor */
    JPEGPOINTTRANSFORM = 518,	/* !lossless point transform */
    JPEGQTABLES = 519,	/* !Q matrice offsets */
    JPEGDCTABLES = 520,	/* !DCT table offsets */
    JPEGACTABLES = 521,	/* !AC coefficient offsets */
    YCBCRCOEFFICIENTS = 529,	/* !RGB -> YCbCr transform */
    YCBCRSUBSAMPLING = 530,	/* !YCbCr subsampling factors */
    YCBCRPOSITIONING = 531,	/* !subsample positioning */
    REFERENCEBLACKWHITE = 532,	/* !colorimetry info */
    XMLPACKET = 700,	/* %XML packet [Adobe XMP Specification, January 2004 */
    OPIIMAGEID = 32781,	/* %OPI ImageID [Adobe TIFF technote] */

    /* tags 32952-32956 are private tags registered to Island Graphics */
    REFPTS = 32953,	/* image reference points */
    REGIONTACKPOINT = 32954,	/* region-xform tack point */
    REGIONWARPCORNERS = 32955,	/* warp quadrilateral */
    REGIONAFFINE = 32956,	/* affine transformation mat */

    /* tags 32995-32999 are private tags registered to SGI */
    MATTEING = 32995,	/* $use ExtraSamples */
    DATATYPE = 32996,	/* $use SampleFormat */
    IMAGEDEPTH = 32997,	/* z depth of image */
    TILEDEPTH = 32998,	/* z depth/data tile */

    /* tags 33300-33309 are private tags registered to Pixar
     *
     * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH
     * are set when an image has been cropped out of a larger image.  
     * They reflect the size of the original uncropped image.
     * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used
     * to determine the position of the smaller image in the larger one.
     */
    PIXAR_IMAGEFULLWIDTH = 33300,   /* full image size in x */
    PIXAR_IMAGEFULLLENGTH = 33301,   /* full image size in y */

    /* Tags 33302-33306 are used to identify special image modes and data
     * used by Pixar's texture formats.
     */
    PIXAR_TEXTUREFORMAT = 33302,	/* texture map format */
    PIXAR_WRAPMODES = 33303,	/* s & t wrap modes */
    PIXAR_FOVCOT = 33304,	/* cotan(fov) for env. maps */
    PIXAR_MATRIX_WORLDTOSCREEN = 33305,
    PIXAR_MATRIX_WORLDTOCAMERA = 33306,

    /* tag 33405 is a private tag registered to Eastman Kodak */
    WRITERSERIALNUMBER = 33405,   /* device serial number */

    /* tag 33432 is listed in the 6.0 spec w/ unknown ownership */
    COPYRIGHT = 33432,	/* copyright string */

    /* IPTC TAG from RichTIFF specifications */
    RICHTIFFIPTC = 33723,

    /*
     * Files written by the Intergraph software
     * has different sampling factors stored in the
     * TIFF tags and in the JPEG structures. We will
     * try to deduce Intergraph files by the presense
     * of the tag 33918.
     */
    INTERGRAPH_MAINIMAGE = 33918, //this is main image
    INTERGRAPH_OVERVIEW = 33919, //overview image (any level)

    /* 34016-34029 are reserved for ANSI IT8 TIFF/IT <dkelly@apago.com) */
    IT8SITE = 34016,	/* site name */
    IT8COLORSEQUENCE = 34017,	/* color seq. [RGB,CMYK,etc] */
    IT8HEADER = 34018,	/* DDES Header */
    IT8RASTERPADDING = 34019,	/* raster scanline padding */
    IT8BITSPERRUNLENGTH = 34020,	/* # of bits in short run */
    IT8BITSPEREXTENDEDRUNLENGTH = 34021,/* # of bits in long run */
    IT8COLORTABLE = 34022,	/* LW colortable */
    IT8IMAGECOLORINDICATOR = 34023,	/* BP/BL image color switch */
    IT8BKGCOLORINDICATOR = 34024,	/* BP/BL bg color switch */
    IT8IMAGECOLORVALUE = 34025,	/* BP/BL image color value */
    IT8BKGCOLORVALUE = 34026,	/* BP/BL bg color value */
    IT8PIXELINTENSITYRANGE = 34027,	/* MP pixel intensity value */
    IT8TRANSPARENCYINDICATOR = 34028,	/* HC transparency switch */
    IT8COLORCHARACTERIZATION = 34029,	/* color character. table */
    IT8HCUSAGE = 34030,	/* HC usage indicator */
    IT8TRAPINDICATOR = 34031,	/* Trapping indicator (untrapped=0, trapped=1) */
    IT8CMYKEQUIVALENT = 34032,	/* CMYK color equivalents */

    /* tags 34232-34236 are private tags registered to Texas Instruments */
    FRAMECOUNT = 34232,	/* Sequence Frame Count */

    /* tag 34377 is private tag registered to Adobe for PhotoShop */
    PHOTOSHOP = 34377,

    /* tags 34665, 34853 and 40965 are documented in EXIF specification */
    EXIFIFD = 34665,	/* Pointer to EXIF private directory */

    /* tag 34750 is a private tag registered to Adobe? */
    ICCPROFILE = 34675,	/* ICC profile data */

    /* tag 34750 is a private tag registered to Pixel Magic */
    JBIGOPTIONS = 34750,	/* JBIG options */
    GPSIFD = 34853,	/* Pointer to GPS private directory */

    /* tags 34908-34914 are private tags registered to SGI */
    FAXRECVPARAMS = 34908,	/* encoded Class 2 ses. parms */
    FAXSUBADDRESS = 34909,	/* received SubAddr string */
    FAXRECVTIME = 34910,	/* receive time (secs) */
    FAXDCS = 34911,	/* encoded fax ses. params, Table 2/T.30 */

    /* tags 37439-37443 are registered to SGI <gregl@sgi.com> */
    STONITS = 37439,	/* Sample value to Nits */

    /* tag 34929 is a private tag registered to FedEx */
    FEDEX_EDR = 34929,	/* unknown use */
    INTEROPERABILITYIFD = 40965,	/* Pointer to Interoperability private directory */

    /* Adobe Digital Negative (DNG) format tags */
    DNGVERSION = 50706,	/* &DNG version number */
    DNGBACKWARDVERSION = 50707,	/* &DNG compatibility version */
    UNIQUECAMERAMODEL = 50708,	/* &name for the camera model */
    LOCALIZEDCAMERAMODEL = 50709,	/* &localized camera model name */
    CFAPLANECOLOR = 50710,	/* &CFAPattern->LinearRaw space mapping */
    CFALAYOUT = 50711,	/* &spatial layout of the CFA */
    LINEARIZATIONTABLE = 50712,	/* &lookup table description */
    BLACKLEVELREPEATDIM = 50713,	/* &repeat pattern size for the BlackLevel tag */
    BLACKLEVEL = 50714,	/* &zero light encoding level */
    BLACKLEVELDELTAH = 50715,	/* &zero light encoding level differences (columns) */
    BLACKLEVELDELTAV = 50716,	/* &zero light encoding level  differences (rows) */
    WHITELEVEL = 50717,	/* &fully saturated encoding level */
    DEFAULTSCALE = 50718,	/* &default scale factors */
    DEFAULTCROPORIGIN = 50719,	/* &origin of the final image area */
    DEFAULTCROPSIZE = 50720,	/* &size of the final image area */
    COLORMATRIX1 = 50721,	/* &XYZ->reference color space transformation matrix 1 */
    COLORMATRIX2 = 50722,	/* &XYZ->reference color space transformation matrix 2 */
    CAMERACALIBRATION1 = 50723,	/* &calibration matrix 1 */
    CAMERACALIBRATION2 = 50724,	/* &calibration matrix 2 */
    REDUCTIONMATRIX1 = 50725,	/* &dimensionality reduction matrix 1 */
    REDUCTIONMATRIX2 = 50726,	/* &dimensionality reduction matrix 2 */
    ANALOGBALANCE = 50727,	/* &gain applied the stored raw values*/
    ASSHOTNEUTRAL = 50728,	/* &selected white balance in linear reference space */
    ASSHOTWHITEXY = 50729,	/* &selected white balance in x-y chromaticity coordinates */
    BASELINEEXPOSURE = 50730,	/* &how much to move the zero point */
    BASELINENOISE = 50731,	/* &relative noise level */
    BASELINESHARPNESS = 50732,	/* &relative amount of sharpening */

    /* defines &how closely the values of the green pixels in the
     * blue/green rows track the values of the green pixels 
     * in the red/green rows */
    BAYERGREENSPLIT = 50733,
    LINEARRESPONSELIMIT = 50734,	/* &non-linear encoding range */
    CAMERASERIALNUMBER = 50735,	/* &camera's serial number */
    LENSINFO = 50736,	/* info about the lens */
    CHROMABLURRADIUS = 50737,	/* &chroma blur radius */
    ANTIALIASSTRENGTH = 50738,	/* &relative strength of the camera's anti-alias filter */
    SHADOWSCALE = 50739,	/* &used by Adobe Camera Raw */
    DNGPRIVATEDATA = 50740,	/* &manufacturer's private data */

    /* &whether the EXIF MakerNote tag is safe to preserve
     * along with the rest of the EXIF data */
    MAKERNOTESAFETY = 50741,
    CALIBRATIONILLUMINANT1 = 50778,	/* &illuminant 1 */
    CALIBRATIONILLUMINANT2 = 50779,	/* &illuminant 2 */
    BESTQUALITYSCALE = 50780,	/* &best quality multiplier */
    RAWDATAUNIQUEID = 50781,	/* &unique identifier for the raw image data */
    ORIGINALRAWFILENAME = 50827,	/* &file name of the original raw file */
    ORIGINALRAWFILEDATA = 50828,	/* &contents of the original raw file */
    ACTIVEAREA = 50829,	/* &active (non-masked) pixels of the sensor */
    MASKEDAREAS = 50830,	/* &list of coordinates of fully masked pixels */
    ASSHOTICCPROFILE = 50831,	/* &these two tags used to */
    ASSHOTPREPROFILEMATRIX = 50832,	/* map cameras's color space into ICC profile space */
    CURRENTICCPROFILE = 50833,	/* & */
    CURRENTPREPROFILEMATRIX = 50834,	/* & */

    /* tag 65535 is an undefined tag used by Eastman Kodak */
    DCSHUESHIFTVALUES = 65535,   /* hue shift correction data */

    /*
     * The following are ``pseudo tags'' that can be used to control
     * codec-specific functionality.  These tags are not written to file.
     * Note that these values start at 0xffff+1 so that they'll never
     * collide with Aldus-assigned tags.
     *
     * If you want your private pseudo tags ``registered'' (i.e. added to
     * this file), please post a bug report via the tracking system at
     * http://www.remotesensing.org/libtiff/bugs.html with the appropriate
     * C definitions to add.
     */
    FAXMODE = 65536,	/* Group 3/4 format control */
    JPEGQUALITY = 65537,	/* Compression quality level */

    /* Note: quality level is on the IJG 0-100 scale.  Default value is 75 */
    JPEGCOLORMODE = 65538,	/* Auto RGB<=>YCbCr convert? */
    JPEGTABLESMODE = 65539,	/* What to put in JPEGTables */

    /* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */
    FAXFILLFUNC = 65540,	/* G3/G4 fill function */
    PIXARLOGDATAFMT = 65549,	/* PixarLogCodec I/O data sz */

    /* 65550-65556 are allocated to Oceana Matrix <dev@oceana.com> */
    DCSIMAGERTYPE = 65550,	/* imager model & filter */
    DCSINTERPMODE = 65551,	/* interpolation mode */
    DCSBALANCEARRAY = 65552,	/* color balance values */
    DCSCORRECTMATRIX = 65553,	/* color correction values */
    DCSGAMMA = 65554,	/* gamma value */
    DCSTOESHOULDERPTS = 65555,	/* toe & shoulder points */
    DCSCALIBRATIONFD = 65556,	/* calibration file desc */

    /* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */
    ZIPQUALITY = 65557,	/* compression quality level */
    PIXARLOGQUALITY = 65558,	/* PixarLog uses same scale */

    /* 65559 is allocated to Oceana Matrix <dev@oceana.com> */
    DCSCLIPRECTANGLE = 65559,	//area of image to acquire
    SGILOGDATAFMT = 65560,	//SGILog user data format
    SGILOGENCODE = 65561,	//SGILog data encoding control

    /* tags 33550 is a private tag registered to SoftDesk, Inc */
    GEOPIXELSCALE = 33550,

    /* tags 33920-33921 are private tags registered to Intergraph, Inc */
    INTERGRAPH_MATRIX = 33920,   /* $use TIFFTAG_GEOTRANSMATRIX ! */
    GEOTIEPOINTS = 33922,

    /* tags 34263-34264 are private tags registered to NASA-JPL Carto Group */
    JPL_CARTO_IFD = 34263,    /* $use GeoProjectionInfo ! */

    GEOTRANSMATRIX = 34264,    /* New Matrix Tag replaces 33920 */
    /* tags 34735-3438 are private tags registered to SPOT Image, Inc */
    GEOKEYDIRECTORY = 34735,
    GEODOUBLEPARAMS = 34736,
    GEOASCIIPARAMS = 34737
  }
}
